/*
 * Copyright 2010 WANdisco, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 */
package com.googlecode.svnj;

public interface IDeltaEditor {

    public void setTargetRevision(long revision) throws Exception;
    
    public void openRoot(long revision) throws Exception;
    
    public void deleteEntry(String path, long revision) throws Exception;
    
    public void addDirectory(String path, String copyFromPath,
            long copyFromRevision) throws Exception;
    
    public void openDirectory(String path, long baseRevision) throws Exception;
    
    public void changeDirProp(String name, String value) throws Exception;
    
    public void closeDirectory() throws Exception;
    
    public void absentDirectory(String path) throws Exception;
    
    public void addFile(String path, String copyFromPath,
            long copyFromRevision) throws Exception;
    
    public void openFile(String path, long baseRevision) throws Exception;
    
    public void beginTextDelta(String baseChecksum) throws Exception;
    public void appendTextDelta(String deltaStr) throws Exception;
    public void endTextDelta() throws Exception;
    
    public void changeFileProp(String name, String value) throws Exception;
    
    public void closeFile(String txtChecksum) throws Exception;
    
    public void absentFile(String path) throws Exception;
    
    public void closeEdit() throws Exception;
    
    public void abortEdit() throws Exception;
}
